.\" Man page for xpra
.\"
.\" Copyright (C) 2008-2009 Nathaniel Smith <njs@pobox.com>
.\" Copyright (C) 2010-2017 Antoine Martin <antoine@xpra.org>
.\"
.\" You may distribute under the terms of the GNU General Public
.\" license, either version 2 or (at your option) any later version.
.\" See the file COPYING for details.
.\"
.TH XPRA 1
.SH NAME
xpra \- viewer for remote, persistent X applications
.\" --------------------------------------------------------------------
.SH SYNOPSIS
.PD 0
.HP \w'xpra\ 'u
\fBxpra\fP \fBseamless\fP [CONNECTIONSTRING] |
\fBxpra\fP \fBdesktop\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBattach\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBshadow\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBproxy\fP [\fI:DISPLAY\fP]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBstop\fP | \fBxpra\fP \fBexit\fP | \fBxpra\fP \fBdetach\fP |
\fBxpra\fP \fBscreenshot\fP \fIfilename\fP | \fBxpra\fP \fBversion\fP |
\fBxpra\fP \fBinfo\fP [CONNECTIONSTRING] |
\fBxpra\fP \fBid\fP [CONNECTIONSTRING] |
\fBxpra\fP \fBtop\fP [CONNECTIONSTRING]
[\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBcontrol\fP [CONNECTIONSTRING] \fIcommand\fP [\fIarguments..\fP]
[\fB\-\-ssh\fP=\fICMD\fP]
[\fB\-\-remote\-xpra\fP=\fICMD\fP]
[\fB\-\-socket\-dir\fP=\fIDIR\fP]
[\fB\-\-socket\-dirs\fP=\fIDIRS\fP]
.HP
\fBxpra\fP \fBdisplays\fP \fI[:DISPLAY]\fP
.HP
\fBxpra\fP \fBclean-displays\fP \fI[:DISPLAY]\fP
.HP
\fBxpra\fP \fBlist\fP [\fB\-\-socket\-dir\fP=\fIDIR\fP]
.HP
\fBxpra\fP \fBlist-sessions\fP [\fB\-\-socket\-dir\fP=\fIDIR\fP]
.HP
\fBxpra\fP \fBlist-windows\fP [\fB\-\-socket\-dir\fP=\fIDIR\fP]
.HP
\fBxpra\fP \fBshell\fP [CONNECTIONSTRING]
.HP
\fBxpra\fP \fBshowconfig\fP [\fBOPTIONS..\fP]
.HP
\fBxpra\fP \fBshowsetting\fP [\fBSETTING1..\fP]
.HP
\fBxpra\fP \fBlist-mdns\fP
.HP
\fBxpra\fP \fBdocs\fP
.HP
\fBxpra\fP \fBhtml5\fP
.HP
\fBxpra\fP \fBupgrade\fP \fI[:DISPLAY]\fP [...any options accepted by
\fBxpra seamless\fP...]
.HP
\fBxpra\fP \fBupgrade-desktop\fP \fI[:DISPLAY]\fP [...any options accepted by
\fBxpra desktop\fP...]
.HP
\fBxpra\fP \fBrecover\fP \fI[:DISPLAY]\fP [...any options accepted by
\fBxpra seamless\fP...]
.PD
.\" --------------------------------------------------------------------
.SH DESCRIPTION
Xpra is a tool which allows you to run X programs \(em usually on a
remote host \(em and then direct their display to your local machine,
disconnect from these programs, and reconnect from the same or another
machine, all without losing any state.  It differs from standard X
forwarding in that it allows disconnection and reconnection without
disrupting the forwarded application; it differs from VNC and similar
remote display technologies in that xpra can run \fIrootless\fP: i.e.,
applications forwarded by xpra appear on your desktop as normal
windows managed by your window manager, rather than being all "trapped
in a box together".  Xpra also uses a custom protocol that is
self-tuning and relatively latency-insensitive, and thus is usable
over network connections that are too slow or unreliable for standard
X forwarding.
Xpra can also be used to shadow an existing X11 display, or in
desktop mode where it behaves more like VNC.
.P
By default the Xpra server announces available sessions (username and display
number) via mDNS to the local network. Use \fBmdns=no\fP to disable it.
.\" --------------------------------------------------------------------
.SH CONNECTION STRINGS
Xpra supports many types of connection strings (some may require extra
packages to be installed):
.SS :DISPLAY[,OPTIONS]
Local displays: this is the simplest form and is only valid for the
current local displays of the current user.
.SS tcp://[[USERNAME][:PASSWORD]@]HOST:PORT[/DISPLAY][?OPTIONS]
TCP mode uses port numbers and not display numbers. If multiple displays
are available through a single TCP port (ie: using a proxy server),
then one can also specify the display number after the port number.
.SS ssl://[[USERNAME][:PASSWORD]@]HOST:PORT[/DISPLAY][?OPTIONS]
SSL adds a secure socket layer on top of the TCP mode.
.SS vsock://[[USERNAME][:PASSWORD]@]HOST:PORT[/?OPTIONS]
Almost identical to the TCP mode, but using AF_VSOCK for transport.
.SS ws://[[USERNAME][:PASSWORD]@]HOST:PORT/[DISPLAY][?OPTIONS]
Connect using websocket protocol.
.SS wss://[[USERNAME][:PASSWORD]@]HOST:PORT/[DISPLAY][?OPTIONS]
Connect using secure websocket protocol. (websocket with SSL)
.SS ssh://[[USERNAME][:PASSWORD]@]HOST[:SSH_PORT]/[DISPLAY][?OPTIONS]
Connect using secure shell. (SSH)

Further SSH options can be specified using the \fB\-\-ssh\fP command line option.
The \fBOPTIONS\fP can be used to specify an ssh proxy:
?proxy=ssh://[USERNAME[:PASSWORD]@]HOST[:SSH_PORT]
xpra will then establish an SSH connection to the specified "proxy" host,
and from that host xpra will set up an SSH connection to the xpra server.

.P
For backwards compatibility, SSH mode also supports the syntax:
\fBssh:[USERNAME[:PASSWORD]@]HOST:DISPLAY\fP but this form does not
support specifying the SSH port number.
Older versions also used the form \fBprotocol:host:port\fP, but users
are encouraged to move to a more standard URI format using \fB://\fP as
separator.
.P
The password need only be specified when the server authentication module
requires it.
.P
.SS vnc://[[USERNAME][:PASSWORD]@]HOST[:VNC_PORT]/
Connect using the RFB protocol. (aka VNC)
This mode only works against VNC servers or an xpra server in desktop or
shadow mode.
.\" --------------------------------------------------------------------
.SH EXAMPLES
.TP \w'xpra\ 'u
\fBxpra start\fP \fI:7\fP
Start an xpra server using display number \fI:7\fP.
Note: using \fBDISPLAY=\fP\fI:7 xterm\fP to start applications against
a specific display is not recommended. Always prefer using xpra's
\fB\-\-start=\fP command line option instead.
See this next example:
.TP
\fBxpra start\fP \-\-start=firefox\fP
Start an xpra server, choosing a display automatically and start
firefox on that virtual display.
No window will appear until you attach with \fBxpra attach\fP.
The start child commands will inherit an environment tailored
for running under xpra.
.TP
\fBxpra start\fP \fIssh://bigbox/7 \-\-start=xterm\fP
Start an xpra server on \fIbigbox\fP with an xterm in it,
and connect to it.
.TP
\fBxpra desktop \-\-start=xfce4-session\fP
Start an xfce session in a nested X11 server on an automatically
assigned display number.
.TP
\fBxpra displays\fP
Lists all the displays currently running on the system.
This includes interactive desktop sessions as well as any
virtual display (xvfb) whether or not they are being used
by an xpra server.
The displays in \fIDEAD\fP state can be recovered using
\fIxpra recover\fP.
.TP
\fBxpra clean-displays\fP
Terminate any displays left in \fIDEAD\fP state.
.TP
\fBxpra clean-sockets\fP
Delete any server sockets belonging to dead servers.
.TP
\fBxpra list\fP
Show a list of xpra servers you have running on the current host.
This will also run \fIclean-sockets\fP.
.TP
\fBxpra list-sessions\fP
Show a list of xpra servers, with extra information about each
session if it can be collected.
.TP
\fBxpra list-windows\fP
Show a list of xpra servers you have running on the current host,
including the session name and a list of windows.
(only if the session can be queried using \fIxpra info\fP)
.TP
\fBxpra\fP \fBlist-mdns\fP
Show a list of xpra servers found via mDNS. (local network)
.TP
\fBxpra\fP \fBdocs\fP
Open the documentation in a web browser.
.TP
\fBxpra\fP \fBhtml5\fP
Open the html5 client in a web browser.
.TP
\fBxpra\fP \fBshell\fP
Start an interactive debug shell.
.TP
\fBxpra showconfig\fP
Shows the configuration that would be used with other sub-commands,
taking into account the command line arguments.
.TP
\fBxpra\fP \fBshowsetting\fP [\fBSETTING1..\fP]
Shows the value of a specific configuration setting and which
configuration directory set this value.
.TP
\fBxpra attach\fP \fI:7\fP
Attach to the xpra server that is using local display number \fI:7\fP.
Any apps running on that server will appear on your screen.
.TP
\fBxpra attach\fP \fIssh://foo@frodo/7\fP
Use ssh to attach to the xpra server that is running on machine
\fIfrodo\fP as user \fIfoo\fP and using display \fI:7\fP.
Any apps running on that server will appear on your local screen.
.TP
\fBxpra start :7 \-\-start=screen\fP
Start an xpra server and a \fBscreen\fP(1) session.  If any of the
applications inside screen attempt to use X, they will be directed to
the xpra server.
.\" --------------------------------------------------------------------
.SH DISPLAYS
Understanding the basic idea of displays is critical to using xpra
successfully.

The idea comes from standard X.  If you have multiple X servers
running on the same host, then there has to be some way to distinguish
them.  X does this by assigning each server a small, unique integer
called (perhaps confusingly) its "display".  In the common case of a
desktop machine that has only one X server running, that server uses
display ":0" (or sometimes you'll see ":0.0", which is effectively the
same).  When an application starts under X, it needs to know how to
find the right X server to use; it does this by checking the
environment variable \fB$DISPLAY\fP.

Xpra faces a similar problem \(em there may be multiple xpra servers
running on the same host, as well as multiple X servers.  It
solves this problem by re-using X's solution \(em each xpra server has
a display associated with it.  This display functions as both an X
display (for when xpra is talking to X applications) and as an
identifier by which xpra clients (like \fBxpra attach\fP) can locate
the xpra server.

You may omit the display number when using \fBxpra start\fP:
a display will be chosen for you automatically.
The display number chosen will be shown in the log output, you should
also be able to see it with \fBxpra list\fP.
On Microsoft Windows and Mac OSX, the display number should be omitted.

Otherwise, when starting an xpra server, you may want to specify
the name of the display to use.  To do this, simply pick any number
you like and stick a colon in front of it.
For instance :7, :12, and :3117 are all valid display names.
Just keep in mind that:
.IP \(bu
Every X or xpra server that is running on a single machine must use a
different display name.  If you pick a number that is already in use
then xpra will not work.
.IP \(bu
The first few numbers (0, 1, 2) are commonly used by real X servers.
.IP \(bu
Everyone who connects to a given machine using \fBssh\fP(1) with X
forwarding enabled will also use a display number; ssh generally picks
numbers near ten (10, 11, 12, ...).
.PP
When specifying an xpra server to a client program like \fBxpra
attach\fP, \fBxpra detach\fP, \fBxpra stop\fP, \fBxpra exit\fP,
\fBxpra version\fP, \fBxpra info\fP, \fBxpra list\fP or \fBxpra screenshot\fP then you
can use a display of the form
\fB:\fP\fIDISPLAY\fP to refer to a server on the local host, or one of
the form \fBssh://\fP\fI[USER@]HOST\fP\fB/\fP\fIDISPLAY\fP to refer to a server
on a remote host; xpra will automatically connect to the remote host
using \fBssh\fP(1).  Generally, if you have only one xpra session
running on a machine (which you can verify by running \fBxpra list\fP
on that machine), then you can omit the number entirely; \fBxpra
attach\fP alone will attach to the lone xpra server on the current
machine regardless of its number, \fBxpra attach ssh://frodo\fP will
similarly attach to the lone xpra session on a remote machine.

Connecting using the display number assumes that the client and server
use the same configuration for socket directories, or at least that
the client can find at least one of the directories used by
the unix domain sockets (see \fIbind\fP, \fIsocket-dir\fP and
\fIsocket-dirs\fP).

If the xpra server was given the \fB\-\-bind\-tcp\fP=\fI[HOST]:PORT\fP
(or \fB\-\-bind\-ssl\fP, \fB\-\-bind\-ws\fP, \fB\-\-bind\-wss\fP, \fB\-\-bind\-vsock\fP)
option when started then you can also connect to it using a display of
the form \fBtcp://HOST:PORT[/DISPLAY]\fP,
\fBssl://HOST:PORT[/DISPLAY]\fP, \fBws://HOST:PORT[/DISPLAY]\fP,
\fBwss://HOST:PORT[/DISPLAY]\fP or \fBvsock://HOST:PORT[/DISPLAY]\fP.
.\" --------------------------------------------------------------------
.SH SUBCOMMANDS
.SS xpra start
This command starts a new xpra server, including any necessary setup.
(When starting a remote server with the \fBssh://HOST/DISPLAY\fP syntax,
the new session will also be attached.)
.SS xpra desktop
Starts a nested X11 server, all child commands will be started in the
nested X11 server.
.SS xpra attach
This command attaches to a running xpra server, and forwards any
applications using that server to appear on your current screen.
.SS xpra detach
Detaches the given xpra display.
.SS xpra screenshot
Takes a screenshot and saves it to the filename specified.
Note: screenshots can only be taken when a client is attached.
.SS xpra version
Queries the server version and prints it out.
Note: older servers may not support this feature.
.SS xpra connect-test
Tries to connect to a server to see if it is alive.
This is normally even available prior to authentication.
This command returns 0 if the server responded.
.SS xpra id
Very similar to \fBconnect-test\fP, but this subcommand
also prints the basic server information it received: pid, uuid, etc
.SS xpra info
Queries the server for full version, status and statistics.
.SS xpra top
Shows the server's key health attributes.
.SS xpra control
Modify the server at runtime by issuing commands.
The list of commands can be obtained by specifying "help" as command.
Some of those commands may support a "help" mode themselves.
.SS xpra initenv
This internal command creates the \fBrun-xpra\fP script used with ssh
connections.
.SS xpra stop
This command attaches to a running xpra server, and requests that it
terminates immediately.  This generally causes any applications using
that server to terminate as well.
.SS xpra exit
This command attaches to a running xpra server, and requests that it
terminates immediately.  Unlike \fBxpra stop\fP, the Xvfb process and
its X11 clients (if any) will be left running.
.SS xpra showconfig
This commands shows the configuration which would be used
given the arguments provided.
You can also specify as extra arguments the specific options that
should be displayed, or use the special value \fIall\fP to
display all the options including the ones which are normally not
displayed because they are not relevant on the given system.
.SS xpra list
This command finds all xpra servers that have been started by the
current user on the current machine, and lists them.
.SS xpra upgrade
This command starts a new xpra server, but instead of creating it from
scratch, it attaches to another existing server, tells it to exit, and
takes over managing the applications that it was managing before.  As
the name suggests, the main use case is to replace a server running
against an older version of xpra with a newer version, without having
to restart your session.  Any currently-running \fBxpra attach\fP
command will exit and need to be restarted.
.SS xpra upgrade-desktop
Same as \fIupgrade\fP but for servers started using \fIdesktop\fP.
It is possible to upgrade seamless server into a desktop server
and vice versa.
.SS xpra recover
Similar to \fIupgrade\fP and \fIupgrade-desktop\fP: but without needing
to specify if the server to recover is a seamless server or a desktop
server. Unlike the \fIupgrade\fP subcommands, \fIrecover\fP can also
detect which displays need recovering. That is, displays which were
previously used by an xpra server but this server has gone missing.
.SS xpra shadow
This command shadows an existing display and is supported on X11, MacOS
and MS Windows platforms. (this is not supported on Wayland yet)

If there is only one X11 display active and its number is below 10,
it can be auto-detected and the display may be omitted.

Note that this mode of operation uses screenscraping which is not very
efficient. Video encoders partially mitigate this drawback.

By default, shadow mode will expose all the monitors connected as
individual windows.
But it is also possible to only shadow a specific region or monitor,
or to group all monitors as a single window by specifying display
options.
Here are some examples:
.TP
To expose all monitors connected to display :1 as a single window,
use the \fBmulti-window\fP option:
.br
\fBxpra shadow :1,multi-window=no\fP
.TP
To shadow a specific output using its name (ie: \fBDP-1\fP):
.br
\fBxpra shadow :1,DP-1\fP
.br
or more explicitly:
.br
\fBxpra shadow :1,plug=DP-1\fP
.TP
To expose a rectangular area of size \fB1920x1080\fP as a single window, use:
.br
\fBxpra shadow :1,1920x1080\fP
.br
You may also want to specify the position of this rectangle (ie: \fB1280x0\fP):
.br
\fBxpra shadow :1,1920x1080@1280x0\fP
.br
or using the more explicit syntax:
.br
\fBxpra shadow :1,geometry=1920x1080@1280x0\fP
.br
Multiple areas can be specified using \fB/\fP as separator,
each one will be exposed as a separate window:
.br
\fBxpra shadow :1,1920x1080@1280x0/1280x600@0x400\fP

.SS xpra proxy
This command allows a single server to proxy connections for multiple
others, potentially serving as a load balancing or authentication
entry point for many sessions.
The proxy server will spawn a new process for each proxy connection,
this proxy process will create an unauthenticated new unix domain socket
which can be used with the subcommands \fBid\fP, \fBinfo\fP, \fBversion\fP and
\fBstop\fP.

.SS Important Note
Some platforms and package managers may choose to only build the client
and not the server. In this case, only the \fBattach\fP subcommand will
be available.

.\" --------------------------------------------------------------------
.SH OPTIONS
.SS General options
.TP
\fB\-\-version\fP
Displays xpra's version number.
.TP
\fB-h, \-\-help\fP
Displays a summary of command line usage.
.TP
\fB\-\-minimal\fP
Disables all non-essential features.
.TP
\fB-d\fP \fIFILTER1,FILTER2,...\fP, \fB\-\-debug\fP=\fIFILTER1,FILTER2,...\fP
Enable debug logging.  The special value \fBall\fP enables all
debugging.
To get the full list of logging categories, run \fIxpra -d help\fP.
To target loggers that use more than one logging category (as some
categories can be quite broad), join them with a '\fB+\fP'.
For example, to enable logging for \fIserver\fP and \fIkeyboard\fP,
use \fI\-\-debug server+keyboard\fP.
You can also exclude a category with the '\fB-\fP' prefix.
For example, to enable \fIshadow\fP debugging but not \fIclipboard\fP,
use: \fI\-\-debug shadow,-clipboard\fP.
.TP
\fB\-\-commands\fP=\fIyes\fP|\fIno\fP
Enable or disable the ability to run commands on the server.
Generally, clients expect to be able to request new commands to be executed
by the server, but this can be turned off to securely lock down the server.
.TP
\fB\-\-shell\fP=\fIyes\fP|\fIno\fP
Enable or disable the ability to connect to an xpra socket with the \fBshell\fP
subcommand.
This is useful for debugging and is not enabled by default.
When disabled, it can still be enable on a per-socket basis using bind options.
.TP
\fB\-\-control\fP=\fIyes\fP|\fIno\fP
Enable or disable the control channel of xpra sockets.
This channel is accessed using the \fBcontrol\fP subcommand to interact with
an xpra process.
.TP
\fB\-\-mmap\fP=\fIyes\fP|\fIno\fP|\fIABSOLUTEFILENAME\fP|\fIDIRECTORY\fP
Enable or disable memory mapped pixel data transfer.
By default it is normally enabled automatically if the server and the
client reside on the same filesystem namespace.
This method of data transfer offers much lower overheads
and reduces both CPU consumption and local network traffic.
When attaching, you can also specify an absolute path where
the mmap file will be created. When used on the server,
one can specify the exact filename that the client will create,
or just the directory where the file will be created so that
multiple clients may connect and use mmap concurrently.
.TP
\fB\-\-mmap\-group\fP=\fIGROUP\fP
Sets the mmap file's gid to the group specified, and sets
the permissions to 660.
This is necessary to share the mmap file across user accounts.
You can also use the special \fIGROUP\fP values:
.RS
.IP \fBno\fP
Disable the functionality, the mmap file will use the default file
permissions and default group ownership.
.IP \fBSOCKET\fP
The group used will be the same one as found on the
unix domain socket file the client connects to.
Obviously, this can only work when connecting to unix domain
sockets.
.IP \fBauto\fP
Will use the 'xpra' group if the user is a member,
otherwise it will fallback to the same behaviour as \fISOCKET\fP.
.RE
.TP

\fB\-\-windows\fP=\fIyes\fP|\fIno\fP
Enable or disable the forwarding of windows. This is usually
the primary use for xpra and should be enabled.
.TP
\fB\-\-min\-size\fP=\fIWIDTH\fPx\fIHEIGHT\fP
Sets the minimum size for all decorated windows.
.TP
\fB\-\-max\-size\fP=\fIWIDTH\fPx\fIHEIGHT\fP
Sets the maximum size for all windows.
.TP
\fB\-\-readonly\fP=\fIyes\fP|\fIno\fP
Read only mode ignores all keyboard and mouse activity.
.TP

\fB\-\-clipboard\fP=\fIyes\fP|\fIno|clipboard-type\fP
Enable or disable clipboard synchronization.
If disabled on the server, no clients will be able to use clipboard
synchronization at all. If turned off on the client, only this
particular connection will ignore clipboard data from the server.
This can also be used to specify a different clipboard implementation.
The clipboard types available will vary from platform to platform and
also depend on build time environment and options
so this is best left on \fBauto\fP.
Other clipboard types available may include:
.RS
.IP \fBtranslated\fP
Clipboard which can translate from one type of selection to another
.IP \fBGDK\fP
The most complete clipboard implementation, includes full X11 support
.IP \fBdefault\fP
Fallback clipboard, with limited X11 support
.IP \fBOSX\fP
OSX specific clipboard
.RE

.TP
\fB\-\-clipboard\-direction\fP=\fIto-server\fP|\fIto-client\fP|\fIboth\fP|\fIdisabled\fP
Choose the direction of the clipboard synchronization.
.TP
\fB\-\-pulseaudio\fP=\fIyes\fP|\fIno\fP
Enable or disable the starting of a pulseaudio server with the session.
.TP
\fB\-\-pulseaudio\-command\fP=\fISERVER-START-COMMAND\fP
Specifies the pulseaudio command to use to start the pulseaudio
server, unless disabled with \fBpulseaudio=no\fP.
.TP
\fB\-\-session\-name\fP=\fIVALUE\fP
Sets the name of this session. This value may be used in
notifications, utilities, tray menu, etc.
Setting this value on the server provides a default value which
may be overridden on the client.
.TP
\fB\-\-encoding\fP=\fIENCODING\fP
Sets the preferred encoding to use.
To see the list of encodings available, use \fI\-\-encoding=help\fP.
This can be used to select \fBgrayscale\fP or 8-bit modes like
\fBpng/P\fP. On local connections or with extremelly fast network links,
plain \fBrgb\fP is also a viable option.
For everything else, the default value \fBauto\fP will select
the best encoding automatically and you should use the
\fBmin-speed\fP and \fBmin-quality\fP options instead for tuning.
.TP
\fB\-\-encodings\fP=\fIENCODING\fP
This specifies the image encodings enabled.
This is the most misused command line option and should be left alone.
The server engine needs to have multiple encodings available to
work effectively.
.TP

\fB\-\-video\-scaling\fP=\fIon\fP|\fIoff\fP|\fISCALING\fP
How much automatic video downscaling should be used,
from 1 (rarely) to 100 (aggressively), 0 to disable.
Video scaling is normally used with video regions or very large windows
(especially full screen windows) to try to maintain a decent framerate.
Video downscaling negatively affects visual quality
and will cause automatic refreshes (if enabled), it is most
useful on video content where it saves a considerable amount of bandwidth.
.TP

\fB\-\-socket\-dir\fP=\fIDIR\fP
Location where to write and look for the Xpra socket files.
The default location varies from platform to platform
("\fI~/.xpra\fP" and "\fI$XDG_RUNTIME_DIR/xpra\fP" on most Posix systems).
If unspecified, the first value from \fBsocket-dirs\fP will be used.
It may also be specified using the XPRA_SOCKET_DIR environment variable.

When using the socket-dir option, it is generally necessary to specify
\fBsocket-dir\fP or \fBsocket-dirs\fP on all following commands,
for xpra to work with the open sessions.

By specifying a shared directory this can be coupled with the
\fImmap-group\fP and \fIsocket-permissions\fP option to connect
Xpra sessions across user accounts with shared memory acceleration.
.TP

\fB\-\-socket\-dirs\fP=\fIDIR\fP
Specifies the directories where to look for existing sockets if
a specific one was not set using \fBsocket-dir\fP.
You may specify each directory using a new \fB\-\-socket\-dirs\fP
command line argument, or joined together by the path separator (\fB:\fP on Posix).
The paths will be expanded.
(ie: \fI\-\-socket\-dirs=~/.xpra:/tmp\fP)
.TP

\fB\-\-file\-transfer\fP=\fIon\fP|\fIoff\fP
Enable file transfers.
.TP
\fB\-\-open\-files\fP=\fIon\fP|\fIoff\fP
This option may be used to allow the remote end to automatically
open files after they have been uploaded.
This may be a security risk if you are using xpra to constrain
what the clients can execute on the server.
.TP

\fB\-\-forward\-xdg\-open\fP=\fIon\fP|\fIoff\fP|\fIauto\fP
Intercept execution of \fIxdg-open\fP and forward the request to the client.
.TP

\fB\-\-open\-command\fP=\fICOMMAND\fP
The command to use for opening files and URLs.
.TP

\fB\-\-bandwidth\-limit\fP=\fIBITSPERSECOND\fP
Restrict bandwidth usage to below the limit given.
The client's value cannot raise the limit of the server.
The value may be specified using standard units, ie:
\fI1Mbps\fP or \fI500K\fP.
In \fIauto\fP mode, the client will set the bandwidth limit
value to 80% of the maximum speed of the network interface
it is using to connect to the server.

\fB\-\-splash\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
Show a splash screen during client or server startup.
With the default value of \fIauto\fP, the splash screen is only
shown if there is a GUI available - ie: no attempt will be made
to show the splash screen when xpra is launched from an SSH session.


.SS Options for seamless, desktop, upgrade, proxy and shadow
.TP
\fB\-\-daemon\fP=\fIyes\fP|\fIno\fP
By default, the xpra server puts itself into the background,
i.e. 'daemonizes', and redirects its output to a log file.
This can be used to prevent that behavior (useful mostly for debugging).
.TP

\fB\-\-resize\-display\fP=\fIyes\fP|\fIno|WIDTHxHEIGHT\fP
Resize the virtual display to match the resolution of
the client currently connected.
This only applies to the \fIstart\fP and \fIdesktop\fP
subcommands.
If a resolution is given, this will be the initial resolution
of the display and the display will be resizable.
A small set of pre-defined aliases can also be used:
\fIQVGA\fP, \fIVGA\fP, \fISVGA\fP, \fIXGA\fP, \fI1080p\fP,
\fIFHD\fP, \fI4K\fP.
.TP

\fB\-\-chdir\fP=\fIDIR\fP
Change to this directory after daemonizing.
.TP

\fB\-\-uid\fP=\fIUID\fP and \fB\-\-gid\fP=\fIGID\fP
When launching the server as root, these options can be used
to drop privileges to the given UID / GID.
.TP

\fB\-\-pidfile\fP=\fIFILENAME\fP
Writes the server process ID to this file on startup.
If the file has not been replaced,
it will be deleted when the server exits.
.TP

\fB\-\-challenge\-handlers\fP=\fIMODULE:options\fP
Configures which challenge handlers are used by the client and in
which order. This option may be repeated to specify multiple handlers,
which can be useful if the server sends more than one authentication
challenge.
The default value is: \fIall\fP which corresponds to:
\fIuri,file,env,kerberos,gss,u2f,prompt\fP.
.RS
.IP \fBuri\fP
Use the password specified on the connection string, if any.
.IP \fBfile\fP
The filename used to store the password can be specified using the
\fIfilename\fP option.
If this option is not specified, it will fallback to using the
password filename specified with the \fIpassword-file\fP switch.
.IP \fBenv\fP
Use the password specified using the environment variable
specified using the \fIname\fP option, which defaults to
\fIXPRA_PASSWORD\fP if unspecified.
.IP \fBkerberos\fP
Requests a kerberos token for the service specified.
.IP \fBgss\fP
Requests a gss token for the service specified.
.IP \fBu2f\fP
Requests a token from a U2F device.
.IP \fBprompt\fP
Prompt the user for the value.
Terminal clients prompt using text input, GUI clients
use a dialog.
.RE
.PP
.TP

\fB\-\-min\-port\fP=\fIPORT\fP
The minimum port number allowed when creating TCP sockets.
You can use a lower value to allow unprivileged users to bind to
privileged ports when starting sessions via the system wide proxy server.
The default value is 1024 which is the standard value for privileged ports.
.TP
\fB\-\-mdns\fP=\fIyes\fP|\fIno\fP
Enable or disable the publication of new sessions via mDNS.
.TP
\fB\-\-dbus\-launch\fP=\fICOMMAND\fP|\fIno\fP
Start the session within a dbus-launch context, you can specify
the dbus launch command to use, or turn it off completely.
Some features may not be available without a dbus context.
.TP
\fB\-\-dbus\-control\fP=\fIyes\fP|\fIno\fP
Start a dbus server which can be used to interact with the server
process.


.SS Options for seamless, desktop, upgrade and listen:
In previous versions, the authentication for each connection type
was configured using a separate command line option which would
apply to all connections of the same type. ie: \fItcp-auth\fP for
\fIbind-tcp\fP.
Although this is still supported as a fallback, the recommended
way is to specify authentication options using bind properties.
ie: \fIbind-tcp=0.0.0.0:14500,auth=file:filename=password.txt\fP.
The properties can also define extra socket configuration options.

\fB\-\-bind\fP=\fIBIND_LOCATION[,PROPERTIES]\fP
Create a local Unix domain socket (on Unix)
or named-pipe (on MS Windows) for each \fBbind\fP option specified.

This option can be specified multiple times to specify multiple
socket locations.
These sockets support local connections with the \fB:7\fP-style display
address, and remote connections with the \fBssh://frodo/7\fP-style
display address.

Local sockets may also process HTTP / Websocket connections
if the \fBhtml\fP switch is enabled.

The location can take the form:
.RS
.IP \fBnone\fP
do not create a socket
.IP \fBauto\fP
backwards compatible default which uses the current \fIsocket-dir\fP
.IP \fBDIRECTORY/\fP
create a socket in the directory specified, if the directory does
not exist then it will be created - you should include the trailing
slash to prevent the confusion with the \fIPATH\fP form:
.IP \fBPATH\fP
create the socket using the path specified
.RE
.PP
.TP
\fB\-\-bind\-tcp\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Create a TCP socket for each \fB\-\-bind\-tcp\fP option specified.
If the host portion is omitted, then 127.0.0.1 (localhost) will be
used.  If you wish to accept connections on all interfaces, pass
0.0.0.0 for the host portion.

Using this switch without setting the \fIauth\fP option is not recommended,
and is a major security risk (especially when passing 0.0.0.0)!
Anyone at all may connect to this port and access your session.

TCP sockets may also process HTTP / Websocket connections
if the \fBhtml\fP switch is enabled.
TCP sockets may also be upgraded to SSL sockets if the
\fBssl\fP switch is enabled.
.TP

\fB\-\-bind\-ws\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Create an HTTP / Websocket listener.
See \fBbind-tcp\fP for host restrictions,
you should use the \fBauth-ws\fP to secure access.
.TP
\fB\-\-bind\-wss\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Create an HTTPS / Secure Websocket listener.
See \fBbind-tcp\fP for host restrictions,
you should use the \fBauth-wss\fP to secure access.
.TP
\fB\-\-bind\-ssl\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Just like \-\-bind\-tcp\fP but for SSL sockets.
See \fIssl-auth\fP and the other SSL options.
.TP
\fB\-\-bind\-rfb\fP=\fI[HOST]:PORT[,PROPERTIES]\fP
Listens for RFB connections on the given port.
These sockets are only supported with the \fBdesktop\fP and
\fBshadow\fP modes.
.TP
\fB\-\-bind\-vsock\fP=\fICID:PORT[,PROPERTIES]\fP
Create a VSOCK socket for each \fB\-\-bind\-vsock\fP option specified.
.TP
\fB\-\-auth\fP=\fIMODULE[:OPTION=VALUE]\fP
Specifies the authentication module to use for all unix domain sockets
created using the \fBbind\fP switch. Authentication modules can
validate a username and password against a variety of backend modules:
.RS
.IP \fBallow\fP
always allows authentication - this is dangerous
and should only be used for testing
.IP \fBfail\fP
always fails authentication, useful for testing
.IP \fBenv\fP
matches against the environment variable specified by the \fIname\fP option
(which defaults to \fBXPRA_PASSWORD\fP).
ie: \fB\-\-auth=env:name=SOME_OTHER_ENV_VAR_NAME\fP.
.IP \fBpassword\fP
matches against the password specified using the \fIvalue\fP option.
ie: \fB\-\-auth=password:value=YOURPASSWORD\fP.
Note: this command line option may be exposed to other processes
on the same system.
.IP \fBfile\fP
checks the password against the password data found in the file
specified using the \fBfilename\fP option.
ie: \fB\-\-auth=file:filename=./password.txt\fP.

The contents of this file will be treated as binary data,
there are no restrictions on character encodings or file size.
Beware of trailing newline characters which will be included in the
password data.

.IP \fBmultifile\fP
checks the username and password against the file specified using
the filename option.
The file must contain each user credentials on one line of the form:

\fIusername|password|uid|gid|displays|env_opts|session_opts\fP

It is not possible to have usernames or password that contain
the pipe character \fI|\fP which is used as delimiter, or newlines
and carriage returns.
This module is deprecated, \fIsqlite\fP should be used instead.

.IP \fBsqlite\fP
.IP \fBmysql\fP
.IP \fBsql\fP
checks the username and password against the sqlite database file
specified using the \fIfilename\fP option (for the \fIsqlite\fP backend),
or the database specified using the \fIuri\fP option
(\fImysql\fP and \fIsql\fP backends).
The authentication will be processed using the following query
(which is configurable using the \fIpassword_query\fP option):
\fISELECT password FROM users WHERE username=(?)\fP
The sessions available for each user will be queried using:
(this is configurable using the \fIsessions_query\fP option):
\fISELECT uid, gid, displays, env_options, session_options
FROM users WHERE username=(?)\fP
Multiple displays may be specified as a comma separated list.

.IP \fBhosts\fP
checks the host using the system's \fItcp-wrappers\fP library.
(Posix only, and not available on Mac OS)
See \fIhosts.allow\fP and \fIhosts.deny\fP for details.

.IP \fBexec\fP
Executes the command specified using the \fIcommand\fP attribute,
the arguments to this command are: a description of the access
request and the \fItimeout\fP value. (also configurable)
If the command is not specified, the system will try to locate
and use the \fIauth_dialog\fP utility which is shipped with xpra.
The command should return 0 to allow access, any other value will
deny access.

.IP \fBpeercred\fP
checks the unix domain socket peer credentials using \fISO_PEERCRED\fP.
This authentication module is only available on some Posix compliant
operating systems. This module will verify that the operating system
provides the uid and gid of the process that initiated the connection.
Access can be restricted by supplying a colon separated list of valid
\fIuid\fPs and \fIgid\fPs that are allowed to connect.
Those id values may be specified using numerical values or using
the usernames / group names.
This module is different from the others in that it will not require
the client to supply a username or password, as those are ignored.
Environment variables and pseudo-environment variables may also be used
as values, eg: \fB\-\-auth=peercred:uid=\\$UID:fred,gid=xpra\fP.

.IP \fBpam\fP
validates the username and password using the PAM system
.IP \fBwin32\fP
validates the username and password using Microsoft Windows
authentication (only available on this platform)
.IP \fBsys\fP
chooses the appropriate system authentication module
automatically (either \fBpam\fP or \fBwin32\fP)

.IP \fBkerberos-password\fP
validates the username and password using kerberos authentication.
Warning: this module does not use kerberos tickets and the password
will be sent in plain text to the server. This should only be used
for testing.
.IP \fBkerberos-ticket\fP
validates a kerberos ticket obtained by the client.
.IP \fBgss\fP
validates a GSS ticket obtained by the client.
.IP \fBu2f\fP
requests a U2F token from the client.
.IP \fBldap\fP
validates the username and password against an LDAP server,
using the \fIpython-ldap\fP library.
.IP \fBldap3\fP
validates the username and password against an LDAP server,
using the python \fIldap3\fP library.
.RE
.PP
.TP
\fB\-\-tcp\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to TCP sockets (sockets defined using the \fBbind-tcp\fP switch).
Deprecated, use per-socket authentication options.
.TP
\fB\-\-ws\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to ws sockets: sockets defined using the \fBbind-ws\fP switch,
or TCP sockets upgraded to websockets. (if the \fBhtml\fP option is enabled).
Deprecated, use per-socket authentication options.
.TP
\fB\-\-wss\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to wss sockets: sockets defined using the \fBbind-wss\fP switch,
ws sockets upgraded to SSL (if the \fBssl\fP option is enabled) or
TCP sockets upgraded to SSL and then to wss.
(if both the \fBssl\fP and \fBhtml\fP options are enabled).
Deprecated, use per-socket authentication options.
.TP
\fB\-\-ssl\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to SSL sockets: sockets defined using the \fBbind-ssl\fP switch,
or TCP sockets upgraded by \fBssl=auto\fP or \fBssl=on\fP.
Deprecated, use per-socket authentication options.
.TP
\fB\-\-rfb\-auth\fP=\fIMODULE\fP
Authentication module to use for the \fBbind-rfb\fP sockets.
Deprecated, use per-socket authentication options.
.TP
\fB\-\-vsock\-auth\fP=\fIMODULE\fP
Just like the \fBauth\fP switch, except this one only applies
to VSOCK sockets (sockets defined using the \fBbind-vsock\fP switch).
Deprecated, use per-socket authentication options.


.SS Options for seamless, desktop, upgrade
.TP
\fB\-\-exec\-wrapper\fP=\fICMD\fP
A wrapper command which is prepended to all start commands.
Typically, this is used for starting all sub-commands via VirtualGL.
.TP
\fB\-\-start\fP=\fICMD\fP
After starting the server, runs the command \fICMD\fP using the
default shell.  The command is run with its \fB$DISPLAY\fP set to point to
the newly-started server.  This option may be given multiple times to
start multiple commands.
.TP
\fB\-\-start\-child\fP=\fICMD\fP
Identical to \fB\-\-start\fP, except that the commands are taken into
account by \fB\-\-exit\-with\-children\fP.
.TP
\fB\-\-start\-after\-connect\fP=\fICMD\fP
Wait for the first client to connect before starting the command.
.TP
\fB\-\-start\-child\-after\-connect\fP=\fICMD\fP
Wait for the first client to connect before starting the child command.
See \fIstart-child\fP.
.TP
\fB\-\-start\-on\-connect\fP=\fICMD\fP
Execute this command every time a client connects.
.TP
\fB\-\-start\-child\-on\-connect\fP=\fICMD\fP
Execute this child command every time a client connects.
See \fIstart-child\fP.
.TP
\fB\-\-start\-on\-last\-client\-exit\fP=\fICMD\fP
Execute this command every time a client disconnects and there are
no other clients left.
.TP
\fB\-\-start\-child\-on\-last\-client\-exit\fP=\fICMD\fP
Execute this child command every time a client disconnects and there are
no other clients left.
See \fIstart-child\fP.
.TP
\fB\-\-terminate\-children\fP=\fIyes\fP|\fIno\fP
On server \fBstop\fP, terminate all the child commands that have been started
by the server. This does not affect server \fBexit\fP.
Most child commands are tied to the display so they are normally
forced to shutdown anyway, but this gives them more time to cleanup properly
and can be used to stop background commands that aren't tied to a display.
.TP
\fB\-\-exit\-with\-children\fP=\fIyes\fP|\fIno\fP
This option may only be used if \fB\-\-start\-child\fP is also
given.  If it is given, then the xpra server will monitor the status
of the children started by \fB\-\-start\-child\fP, and will
automatically terminate itself when the last of them has exited.
.TP
\fB\-\-exit\-with\-windows\fP=\fIyes\fP|\fIno\fP
The server will terminate automatically when there are no more windows
or system trays being forwarded.
This option is only relevant for seamless servers.
.TP
\fB\-\-exit\-with\-client\fP=\fIyes\fP|\fIno\fP
The server will terminate when the last client disconnects.
.TP
\fB\-\-env\fP=\fIKEY=VALUE\fP
Extra environment variables which will only affect commands started using
\fB\-\-start\fP or \fB\-\-start\-child\fP.
.TP
\fB\-\-start\-new\-commands\fP=\fIyes\fP|\fIno\fP
Allow clients to ask the server to execute new commands.
(this can also be used via the control channel)
.TP
\fB\-\-start\-via\-proxy\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
If enabled, the \fBseamless\fP and \fBdesktop\fP subcommands
will be delegated to the system wide proxy server instance.
With \fIauto\fP mode, this delegation will only occur if the
system wide proxy server is found.
.TP
\fB\-\-systemd\-run\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
Wrap server start commands with systemd-run.
.TP
\fB\-\-systemd\-run\-args\fP=\fIARGS\fP
Command line arguments passed to systemd-run.
.TP
\fB\-\-use\-display\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
Use an existing display rather than starting one with xvfb.
You are responsible for starting the display yourself.
This can also be used to rescue an existing display whose
xpra server instance crashed or for running xpra against
an accelerated X11 server.
With \fIauto\fP, xpra will use the existing display
if it is found.
.TP
\fB\-\-displayfd\fP=\fIFD\fP
The xpra server will write the display number back on this
file descriptor as a newline-terminated string.
This is most useful when the display number is not specified
with the xpra \fIseamless\fP or \fIdesktop\fP subcommands.
.TP
\fB\-\-xvfb\fP=\fICMD\fP
When starting a seamless server, xpra starts a virtual X server to
run the clients on.  If your Xvfb is installed in a
funny location, or you want to use some other virtual X server, then
this switch allows you to specify how to run your preferred X server
executable.  The default value used depends on your platform.
The recommended command to use here is \fBXorg\fP with the \fBdummy\fP
driver, also known as \fBXdummy\fP. See:
\fBhttps://github.com/Xpra\-org/xpra/blob/master/docs/Usage/Xdummy.md\fP
Some distributions are unable to configure it properly and will
use \fBXvfb\fP instead.
.TP
\fB\-\-sync\-xvfb\fP=\fIDELAY\fP
The windows are normally only displayed on the client(s), they are
not painted on the virtual display.
Some applications like screen recorders may want to capture the
window contents, you can use this option to enable painting with
a configurable delay (in milliseconds).
Warning: this extra painting is expensive and quite slow, which is why
it is not enabled by default.
.TP
\fB\-\-attach\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
Once the server has started, immediately connect a client to it.
With the value \fBauto\fP, a client is started for remote servers
only. (servers specified via a network URI)
If a display is specified and a server is already running,
xpra will not try to start a new one and it will just attach to it.
.TP
.SS Options for seamless, desktop, upgrade, shadow
.TP

\fB\-\-http\fP=\fIon\fP|\fIoff\fP
Respond to HTTP requests on the TCP port(s) and local sockets.
This requires at least one TCP or local socket to be configured
using the matching \fBbind\fP option.
.TP
\fB\-\-html\fP=\fIon\fP|\fIoff\fP|\fIauto\fP|\fIwebrootpath\fP
This enables access to the \fBhtml5\fP client via http.
The \fBauto\fP mode will enable support if it is found.
You can also specify your own web root path as argument.
.TP
\fB\-\-http\-scripts\fP=\fIoff\fP|\fIall\fP|\fISCRIPTS\fP
Enable the builtin web server scripts that expose the
server status, current active sessions and displays, the list
of applications and desktop sessions installed.
This can be used by the client's user interface.
.TP

\fB\-\-rfb\-upgrade\fP=\fIDELAY\fP
Allows RFB clients (ie: VNC) to connect to a plain TCP socket.
If no data is received after \fIDELAY\fP seconds, the server
will send a RFB handshake.
This option is only applicable to servers started in
\fIdesktop\fP or \fIshadow\fP modes.
.TP

\fB\-\-video\-encoders\fP=\fIENCODERS\fP
Specifies the video encoders to try to load.
By default, all of them are loaded, but one may want to specify
a more restrictive list of encoders.
Use the special value 'help' to get a list of options.
Use the value 'none' to not load any video encoders.

.TP
\fB\-\-csc\-modules\fP=\fIMODULES\fP
Specifies the colourspace conversion modules to try to load.
By default, all of them are loaded, but one may want to specify
a more restrictive list of modules.
Use the special value 'help' to get a list of options.
Use the value 'none' to not load any colourspace conversion modules.

.TP
\fB\-\-socket\-permissions\fP=\fIACCESS-MODE\fP
Specifies the file permissions on the server's unix domain sockets.
Defaults to 600. This is ignored when \fImmap-group\fP is enabled.


.SS Options for seamless, desktop, upgrade and attach
.TP
\fB\-\-encryption\fP=\fICIPHER\fP
Specifies the cipher to use for securing the connection from
prying eyes.
This option requires the use of the \fB\-\-encryption\-keyfile\fP option.
The only ciphers supported at present are:
.RS
.IP \fBAES\fP
For servers, this allows the client to choose any of the modes
it wants to use.
For clients, this is an alias for \fIAES-CBC\fP and
using a more specific mode should be preferred.
.IP \fBAES-CBC\fP
\fIAES\fP in \fIcipher block chaining\fP mode
.IP \fBAES-GCM\fP
\fIAES\fP in \fIgalois/counter mode\fP
.IP \fBAES-CFB\fP
\fIAES\fP in \fIcipher feedback\fP mode
.IP \fBAES-CTR\fP
\fIAES\fP in \fIcounter\fP mode
.RE
.PP
If the client requests encryption it will be used by both the client
and server for all communication after the initial password verification,
but only if the server supports this feature too.
Note: this feature has not been extensively reviewed and as it is
it should not be considered safe from determined attackers.
.TP
\fB\-\-tcp\-encryption\fP=\fICIPHER\fP
Just like the \fBencryption\fP switch, except this one only applies
to TCP sockets (sockets defined using the \fBbind-tcp\fP switch).
.TP
\fB\-\-encryption\-keyfile\fP=\fIFILENAME\fP
Specifies the key to use with the encryption cipher specified
with \fB\-\-encryption\fP.  The client and server must use the
same keyfile contents.
.TP
\fB\-\-tcp\-encryption\-keyfile\fP=\fIFILENAME\fP
Just like the \fBencryption-keyfile\fP switch, except this one only applies
to TCP sockets (sockets defined using the \fBbind-tcp\fP switch).
.TP
\fB\-\-idle\-timeout\fP=\fIIDLETIMEOUT\fP
The connection will be terminated if there is no user activity
(mouse clicks or key presses) for the given amount of time
(in seconds). Use the value 0 to disable this timeout.
.TP
\fB\-\-server\-idle\-timeout\fP=\fIIDLETIMEOUT\fP
The server will exit if there are no active connections
for the given amount of time (in seconds).
Use the value 0 to disable this timeout.
.TP
\fB\-\-clipboard\-filter\-file\fP=\fIFILENAME\fP
Name of a file containing regular expressions, any clipboard data
that matches one of these regular expressions will be dropped.
Note: at present this only applies to copying from the machine where
this option is used, not to it.
.TP
\fB\-\-dpi\fP=\fIVALUE\fP
The 'dots per inch' value that client applications should try to honour.
This numeric value should be in the range 10 to 500 to be useful.
Many applications will only read this value when starting up,
so connecting to an existing session started with a different DPI
value may not have the desired effect.
.TP
\fB\-\-pixel\-depth\fP=\fIVALUE\fP
When starting a server, this switch controls the bits per pixel
of the virtual framebuffer. Possible values: 0 (auto), 16, 24, 30.
When starting a client, this switch controls the picture rendering
with the opengl backend: values higher than 24 will enable deep color,
the value 24 enables regular true color rendering. Use the value 0
to let the client decide if the rendering will benefit from using
deep color. (this is only supported on some Posix clients)
Other values should not be used.
.TP
\fB\-\-cursors\fP=\fIyes\fP|\fIno\fP
Enable or disable forwarding of custom application mouse cursors.
Client applications may change the mouse cursor at any time, which
will cause the new cursor's pixels to be sent to the client each time.
This disables the feature.
.TP
\fB\-\-notifications\fP=\fIyes\fP|\fIno\fP
Enable or disable forwarding of system notifications.
System notifications require the xpra server to have its own instance
of a dbus daemon, if it is missing a warning will be printed on
startup.  This switch disables the feature entirely, and avoids
the warning.
.TP
\fB\-\-input\-method\fP=\fIMETHOD\fP
Specify which input method to configure.
This sets a number of environment variables which should be
honoured by applications started with the \fBstart-child\fP option.

.br
The following \fIMETHOD\fPs are currently supported:
.RS
.IP \fBnone\fP
Disable input methods completely and prevent it from
interfering with keyboard input. This is the default.
.IP \fBkeep\fP
Keeps the environment unchanged. You are responsible for ensuring
it is correct.
.IP \fBxim\fP
Enables the X Input Method.
.IP \fBIBus\fP
Enables the Intelligent Input Bus.
.IP \fBSCIM\fP
Enables the Smart Common Input Method.
.IP \fBuim\fP
Enables the Universal Input Method.
.RE
.PP
Any other value will also be set up, but will trigger a warning.

.TP
\fB\-\-xsettings\fP=\fIauto\fP|\fIyes\fP|\fIno\fP
Enable or disable xsettings synchronization.  Xsettings are only forwarded
from posix clients connecting to real posix servers (not shadows).
In 'auto' mode, only seamless servers enable xsettings synchronization.
.TP
\fB\-\-system\-tray\fP=\fIyes\fP|\fIno\fP
Enable or disable forwarding of system tray icons.
This feature requires client support and may not be available on all
platforms.
.TP
\fB\-\-bell\fP=\fIyes\fP|\fIno\fP
Enable or disable forwarding of the system bell.
.TP
\fB\-\-webcam\fP=\fIyes\fP|\fIno\fP
Enable or disable webcam forwarding.
.TP
\fB\-\-mousewheel\fP=\fIon\fP|\fIoff\fP|\fIinvert\fP|\fIinvert-x\fP|\fIinvert-y\fP|\fIinvert-z\fP
Mouse wheel handling: can be used to disable mouse wheel forwarding
using the value \fIno\fP, or to invert some or all axes:
\fIinvert-all\fP, \fIinvert-x\fP, \fIinvert-y\fP, \fIinvert-z\fP.

.TP
\fB\-\-remote\-logging\fP=\fIboth\fP|\fIall\fP|\fIsend\fP|\fIreceive\fP|\fIno\fP
.RS
Remote logging is always initiated by the client,
but the server can restrict which direction log messages are allowed to flow.
.IP \fBboth\fP
The log output is both forwarded and sent locally
(to \fIstdout\fP, \fIstderr\fP or a log file).
.IP \fBallow\fP
Used by the server to allow both \fIsend\fP and \fIreceive\fP,
when sending the log output it will no longer be recorded locally.
.IP \fBsend\fP
Used by the client to send its log output to the server.
Used by the server to allow clients to request log forwarding.
.IP \fBreceive\fP
Used by the client to request that the server sends its log
output to the client.
Used by the server to allow clients to forward their logging.
.IP \fBno\fP
Remote logging is disabled.
.RE
.PP

.TP
\fB\-\-av\-sync\fP=\fIyes\fP|\fIno\fP
Enable or disable audio-video synchronization.
The video data will be delayed so that it is displayed in sync with the audio.
Note: this only applies to video regions, either auto-detected via the builtin
heuristics or specified using the dbus interface.


.SS Options for attach
.TP
\fB\-\-modal\-windows\fP=\fIyes\fP|\fIno\fP
Honour modal windows.
This may have undesirable side effects when multiple applications are
forwarded through the same xpra server: modal windows will be made modal
for all the applications forwarded by xpra rather than just the one
application which owns that window.
.TP
\fB\-\-headerbar\fP=\fIauto\fP|\fIno\fP|\fIforce\fP
Replaces the window's standard title bar with a custom one which
is used to give access to xpra specific window controls.
This feature can have side effects and it is incompatible with OpenGL
acceleration on MS Windows.
.TP
\fB\-\-password\-file\fP=\fIFILENAME\fP
Supply the password to be used for connecting to a server that
uses authentication.
Deprecated, use per-socket authentication options.
.TP
\fB\-\-opengl\fP=(\fIyes\fP|\fIno\fP|\fIauto\fP)[:\fIbackend\fP]
Use OpenGL accelerated rendering on the client.
The default is to detect if the graphics card and drivers are
supported (\fIauto\fP mode), but one can also disable OpenGL (\fIno\fP)
or force it enabled (\fIyes\fP).
On some platforms, it is also possible to specify which backends
should be used, only \fIgtk\fP and \fInative\fP are currently
supported and only on X11 platforms.
ie: \fIopengl=yes:native\fP, or \fIopengl=auto:gtk,native\fP.
.TP
\fB\-\-webcam\fP=\fIyes\fP|\fIno\fP|\fI/dev/deviceXXX\fP|\fIDEVICEID\fP
Enable or disable webcam forwarding.
The webcam device to use can also be specified.
.TP

\fB-z\fP\fILEVEL\fP, \fB\-\-compress\fP=\fILEVEL\fP
Select the level of compression xpra will use when transmitting data
over the network.
There are only two possible values:
0 (meaning no compression) and 1 (compression enabled).

This compression is not used on pixel data (except
when using the \fBrgb\fP encoding).
.TP
\fB\-\-quality\fP=\fIVALUE\fP
This option sets a fixed image compression quality for lossy encodings
(\fBjpeg\fP, \fBwebp\fP, \fBh264\fP/\fBh265\fP and \fBvp8\fP/\fBvp9\fP).
First, one of those lossy encodings must be enabled with \fB\-\-encoding\fP
or when using the default \fIauto\fP mode.
Values range from 1 (lowest quality, high compression - generally unusable)
to 100 (highest quality, low compression).
Specify a value of zero to let the system tune the quality dynamically
to achieve the best bandwidth usage possible.
It is usually best not to use this option and use \fBmin-quality\fP instead.
.TP
\fB\-\-min\-quality\fP=\fIMIN-QUALITY\fP
This option sets the minimum encoding quality allowed when the quality option is
set to automatic mode. See \fIquality\fP above.
.TP
\fB\-\-speed\fP=\fISPEED\fP
This option sets the encoding speed, from 1 (slowest) to 100 (fastest).
Slower compresses better and will use less bandwidth, faster will give
better latency as long as there is sufficient bandwidth.
The system normally uses a variable speed, this option forces
a fixed speed setting to be used instead.
It is usually best not to use this option and use \fBmin-speed\fP instead.
.TP
\fB\-\-min\-speed\fP=\fIMIN-SPEED\fP
This option sets the minimum encoding speed allowed when the speed option is
set to automatic mode. See \fIspeed\fP above.
.TP
\fB\-\-auto\-refresh\-delay\fP=\fIDELAY\fP
This option sets a delay after which the windows are automatically
refreshed using a lossless frame if their contents had been updated using
a lossy encoding previously.
The delay is a floating-point number and is in seconds.
This option is enabled by default with a delay of 0.25 seconds.
This option is only relevant when using a lossy encoding.
.TP
\fB\-\-shortcut\-modifiers\fP=\fIMODIFIERS\fP
Defines the default shortcut modifiers required by the \fIkey-shortcuts\fP,
these modifiers can then be referred to as \fI#\fP.
The default value is 'auto' which evaluates to \fIMeta+Shift\fP on most
platforms.
.TP
\fB\-\-key\-shortcut\fP=\fIKEY:ACTION\fP
Can be specified multiple times to add multiple key shortcuts.
These keys will be caught by the client and trigger the action specified
and the key presses will not be passed on to the server.

The \fIKEY\fP specification may include keyboard modifiers in the form
\fB[modifier\+]*key\fP, for example: \fIShift+F10\fP or \fIShift+Control+B\fP.
You can refer to the \fIshorcut-modifers\fP option value using \fI#\fP,
ie: \fI#+F1\fP.

Shortcuts defined on the command line are added to the builtin default
shortcuts.
To clear the list of shortcuts, use \fIkey-shortcut=clear\fP and
define your shortcuts after this one.

Some of the actions may allow arguments (ie: the \fIlog\fP action does),
in which case they are specified in the usual programming style
syntax: \fIACTION(ARG1, ARG2, etc)\fP
.br
String arguments must be quoted (both single and double quotes are supported)
and numeric arguments must not be quoted.
Beware the parenthesis and quotes must usually be escaped when
used from a shell command line.
Example: \fI\-\-key\-shortcut=Meta+Shift+F7:log\e(\e\(aqhello\e\(aq\e)\fP

.br
The following \fIACTION\fPs are currently defined:
.RS
.IP \fBquit\fP
Disconnect the xpra client.
.IP \fBlog("MESSAGE")\fP
Sends \fIMESSAGE\fP to the log.
.IP \fBshow_session_info[("TabName")]\fP
Shows the session information window. The optional \fITabName\fP
allows the information tab shown to be selected. Use the value
\fIhelp\fP to get the list of options.
.IP \fBshow_menu\fP
Shows the menu normally found in the system tray.
.IP \fBshow_start_new_command\fP
Shows the start new command dialog.
.IP \fBshow_shortcuts\fP
Shows the list of shortcuts.
.IP \fBshow_docs\fP
Shows the documentation in a browser window.
.IP \fBmagic_key\fP
Placeholder which can be used by some client toolkits.
.IP \fBvoid\fP
Does not do anything, and can therefore be used to prevent
certain key combinations from ever being sent to the server.
.IP \fBpass\fP
Does not do anything. However, unlike \fIvoid\fP the key
event is forwarded to the server.
.IP \fB\-\fP
Removes an existing key shortcut if one exists.
.IP \fBrefresh_window\fP
Force the currently focused window to be refreshed.
.IP \fBrefresh_all_windows\fP
Force all windows to be refreshed.
.IP \fBtoggle_keyboard_grab\fP
The keyboard will be grabbed / ungrabbed by the current window.
.IP \fBtoggle_pointer_grab\fP
The pointer will be grabbed and confined to the current window.
.IP \fBtoggle_fullscreen\fP
Make the current window fullscreen / unfullscreen.
.IP \fBtoggle_debug\fP
Turn debugging on or off.
.IP \fBscaleup\fP
Increase the current value of \fBdesktop-scaling\fP.
.IP \fBscaledown\fP
Decrease the current value of \fBdesktop-scaling\fP.
.IP \fBscalereset\fP
Reset the \fBdesktop-scaling\fP to its original value.
.IP \fBscalingoff\fP
Turn off \fBdesktop-scaling\fP.
.IP \fBincrease_quality\fP
Increase the \fBmin-quality\fP or \fBquality\fP setting
(whichever one is currently in use).
.IP \fBdecrease_quality\fP
Decrease the \fBmin-quality\fP or \fBquality\fP setting
(whichever one is currently in use).
.IP \fBincrease_speed\fP
Increase the \fBmin-speed\fP or \fBspeed\fP setting
(whichever one is currently in use).
.IP \fBdecrease_speed\fP
Decrease the \fBmin-speed\fP or \fBspeed\fP setting
(whichever one is currently in use).
.RE
.PP

.TP
\fB\-\-sharing\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
Sharing allows more than one client to connect to the same session.
This must be enabled on both the server and all co-operating clients
to function.
When used server-side, the default value \fIauto\fP allows the clients
to decide if they are willing to share the session.
When used client-side, the default value \fIauto\fP evaluates to \fIno\fP.
To allow sharing to work with unix domain sockets (either using local
connections or via ssh), you should create at least one socket in a group
accessible directory. On Posix with a default configuration, being a
member of the \fIxpra\fP group should be enough to create a socket
in \fI/run/xpra\fP. You must also ensure that the permissions of this
socket file allow group access, see \fIsocket-permissions\fP.
.TP
\fB\-\-lock\fP=\fIyes\fP|\fIno\fP|\fIauto\fP
Locking allows a client to refuse to hand over the session to a new client.
The session may still be shared with multiple clients (see the \fIsharing\fP option),
but otherwise the server will reject new clients.
When used server-side, the default value \fIauto\fP allows the clients
to decide if they want to lock the session.
When used client-side, the default value \fIauto\fP evaluates to \fIno\fP.
.TP
\fB\-\-keyboard\-sync\fP=\fIyes\fP|\fIno\fP
Normally the key presses and key release events are sent to the server
as they occur so that the server can maintain a consistent keyboard state.
Disabling synchronization can prevent keys from repeating unexpectedly on
high latency links but it may also disrupt applications which access
the keyboard directly (games, etc.).
.TP
\fB\-\-keyboard\-raw\fP=\fIyes\fP|\fIno\fP
Tells the server to process all keyboard input untranslated.
Both the client and the server must be using the same type of keyboard
interface. (ie: both using X11)
.TP
\fB\-\-keyboard\-backend\fP=\fIBACKEND\fP
The keyboard backend is normally detected automatically.
This option overrides it.
.TP
\fB\-\-keyboard\-layout\fP=\fILAYOUTSTRING\fP
The keyboard layout is normally detected automatically.
This option overrides it.
.TP
\fB\-\-keyboard\-layouts\fP=\fILAYOUTS\fP
The list of keyboard layouts to enable.
.TP
\fB\-\-keyboard\-variant\fP=\fIVARIANT\fP
Override for the keyboard layout variant.
.TP
\fB\-\-keyboard\-variants\fP=\fIVARIANTS\fP
Override for the keyboard layout variants.
.TP
\fB\-\-keyboard\-options\fP=\fIOPTIONS\fP
Override for the keyboard options sent to the server.
.TP
\fB\-\-swap\-keys\fP=\fIYES|NO\fP
This option only applies to MacOS clients, it swaps
the \fIcommand\fP and \fIcontrol\fP keys and is enabled by default.
.TP
\fB\-\-audio\-source\fP=\fIPLUGIN\fP
Specifies the GStreamer audio plugin used for capturing the audio stream.
This affects "speaker forwarding" on the server, and "microphone" forwarding
on the client.
To get a list of options use the special value 'help'.
It is also possible to specify plugin options using the form:
\fI\-\-audio\-source=
pulse\:device=device.alsa_input.pci-0000_00_14.2.analog-stereo\fP
.TP
\fB\-\-speaker\fP=\fIon\fP|\fIoff\fP|\fIdisabled\fP and \fB\-\-microphone\fP=\fIon\fP|\fIoff\fP|\fIdisabled\fP|\fIon:DEVICE\fP|\fIoff:DEVICE\fP
Sound input and output forwarding support: \fIon\fP will start the forwarding
as soon as the connection is established, \fIoff\fP will require
the user to enable it via the menu, \fIdisabled\fP will
prevent it from being used and the menu entry will be disabled.
With microphone forwarding, you may also be able to specify which
device to use.
.TP
\fB\-\-speaker\-codec\fP=\fICODEC\fP and \fB\-\-microphone\-codec\fP=\fICODEC\fP
Specify the codec(s) to use for audio output (speaker) or input (microphone).
This parameter can be specified multiple times and the order in which the codecs
are specified defines the preferred codec order.
Use the special value 'help' to get a list of options.
When unspecified, all the available codecs are allowed and the first one is used.
.TP
\fB\-\-title\fP\=\fIVALUE\fP
Sets the text shown as window title.
The string supplied can make use of remote metadata placeholders
which will be populated at runtime with the values from the
remote server.
The default value used is "@title@ on @client-machine@".

The following placeholders are defined:
.RS
.IP \fB\@title\@\fP
Will be replaced by the remote window's title.
.IP \fB\@client-machine\@\fP
Will be replaced by the hostname of the system where the application is running,
if provided, the xpra server's hostname otherwise.
.IP \fB\@server-machine\@\fP
Will be replaced by the hostname of the xpra server.
.IP \fB\@server-display\@\fP
Will be replaced by the name of the display on which the application is running.
.RE
.PP

.TP
\fB\-\-border\fP=\fIBORDER\fP
Specifies the color and size of the border to draw inside every xpra window.
This can be used to easily distinguish xpra windows running on remote hosts
from local windows.
The \fIBORDER\fP can be specified using standard color names (ie: \fIred\fP,
or \fIorange\fP) or using the web hexadecimal syntax (ie: \fI#F00\fP or
\fI#FF8C00\fP). The special color name "\fIauto\fP" will derive the color
from the server target address (the connection string) so that connecting
to the same target should always give the same color.
You may also specify the size of the border in pixels, ie:
\fI\-\-border\fP=\fIyellow,10\fP.
.TP
\fB\-\-window\-icon\fP=\fIFILENAME\fP
Path to the default image which will be used for all windows.
This icon may be shown in the window's bar, its iconified
state or task switchers.  This depends on the operating system,
the window manage and the application may override this too.
.TP
\fB\-\-window\-close\fP=\fIACTION\fP
Choose what action to take when the window is closed by the client.
The following actions can be used:
.RS
.IP \fBauto\fP
The client will figure out what is best based on the window type.
This is the default.
ie: it will use \fIdisconnect\fP shadow sessions, \Iforward\fP
for seamless windows.
.IP \fBforward\fP
The event will be forwarded to the server.
.IP \fBignore\fP
Do nothing.
.IP \fBdisconnect\fP
Disconnect from the server.
.IP \fBshutdown\fP
Shutdown the server.
.RE
.PP
.TP
\fB\-\-desktop\-scaling\fP=\fIoff\fP|\fIon\fP|\fIauto\fP|\fIVALUE\fP
Desktop scaling allows the windows to be scaled
by the client.
Downscaling will mostly waste bandwidth, upscaling allows the window's
pixels to be sent over the wire at a lower resolution,
saving bandwidth and CPU time.
This option can also be used to request a specific scaling value.
For best results, use \fBopengl\fP client rendering, the other
display backends may show visual artifacts when scaling.
Note: the scaling may also be adjusted at runtime
through keyboard shortcuts if those are configured.

The \fIdesktop-scaling\fP value can take the form:
.RS
.IP \fBoff\fP
scaling will be disabled
.IP \fBon\fP
scaling will be allowed, but it will start unscaled
.IP \fBauto\fP
scaling will be allowed and a scaling value will be automatically
chosen if the client's desktop is large (bigger desktops will
use higher scaling values)
.IP \fBscaling-value\fP
scaling will be enabled and use the given value, specified as a number,
fraction or percentage. ie: \fB2\fP, \fB3/2\fP or \fB150%\fP.
.IP \fBpair\fP
the scaling will be enabled and use a different value for the X and Y axis. ie: \fB3x2\fP or \fB3/2x4/3\fP
.IP \fBdesktop-size\fP
the scaling will be enabled and the server will render to the given size. ie: \fB1600x1200\fP
.RE
.PP

\fB\-\-tray\fP=\fIyes\fP|\fIno\fP
Enable or disable the xpra's own tray menu.
On MacOS, the dock icon cannot be disabled.
.TP
\fB\-\-delay\-tray\fP
Waits for the first window or notification to appear before
showing the system tray. (posix only)
.TP
\fB\-\-tray\-icon\fP=\fIFILENAME\fP
Specifies the icon shown in the dock/tray.
By default it uses a simple default 'xpra' icon.
(On Microsoft Windows, the icon must be in \fBico\fP format.)
.TP
\fB\-\-enable\-pings\fP
The client and server will exchange ping and echo packets
which are used to gather latency statistics.
Those statistics can be seen using the \fBxpra info\fP command.


.SS Options for attach, stop, info, screenshot, version
.TP
\fB\-\-ssh\fP\=\fICMD\fP
When you use an \fBssh:\fP address to connect to a remote display,
xpra runs \fBssh\fP(1) to make the underlying connection.
Most installations should now be using \fBparamiko\fP as default backend command.
Another common value for \fBCMD\fP is \fBssh\fP or \fBplink\fP on Microsoft
Windows.
If your ssh program is in
an unusual location, has an unusual name, or you want to pass special
options to change ssh's behavior, then you can use the \fB\-\-ssh\fP
switch to tell xpra how to run ssh.

For example, if you want to use arcfour encryption, then you should run

.RS
.RS
\fBxpra attach \-\-ssh\fP=\fI"ssh -c arcfour" ssh://frodo/7\fP

.RE
\fINote:\fP Don't bother to enable ssh compression; this
is redundant with xpra's own compression, and will just waste your
CPU.

On MS Windows, where backslashes are used to separate path elements
and where spaces are often used as part of paths, you need to add
quotes around paths. (ie: \fBssh="C:\\Program Files\\Xpra\\Plink.exe" -ssh -agent\fP)

.RE
.TP
\fB\-\-exit\-ssh\fP=\fIyes\fP|\fIno\fP
Choose whether the SSH client process should be forcibly terminated
when xpra disconnects from the server.
If you are using SSH connection sharing, you may want to avoid
stopping the SSH master process instance spawned by xpra as it may be
used by other SSH sessions.
Note: the \fBexit-ssh=no\fP detaches the SSH process from the
terminal which prevents the SSH process from interacting with
the terminal input, this disables the keyboard interaction required
for password input, host key verification, etc..
.TP
\fB\-\-remote\-xpra\fP=\fICMD\fP
When connecting to a remote server over ssh, xpra needs to be able to
find and run the xpra executable on the remote host.  If this
executable is in a non-standard location, or requires special
environment variables to be set before it can run, then accomplishing
this may be non-trivial.  If running \fBxpra attach ssh:something\fP
fails because it cannot find the remote xpra, then you can use this
option to specify how to run xpra on the remote host.

That said, this option should not be needed in normal usage, as xpra
tries quite hard to work around the above problems.  If you find
yourself needing it often, then that may indicate a bug that we would
appreciate hearing about.

.SS SSL Options
.TP
\fB\-\-ssl\fP=\fIon\fP|\fIauto\fP|\fIoff\fP|\fItcp\fP|\fIwww\fP
Whether to enable SSL on TCP sockets and for what purpose.
The TCP sockets will automatically be upgraded to SSL when SSL
packets are received.
.RS
.IP \fBauto\fP
The server will try to guess what protocol to use for each new
SSL connection: either xpra's native protocol or https / websocket (wss)
.IP \fBtcp\fP
The SSL sockets will only be used for xpra's native protocol
.IP \fBwww\fP
The SSL sockets will only be used for https and websocket (wss)
.RE
If SSL is enabled, then a \fBssl-cert\fP is required.

The remaining options mirror the Python ssl module attributes.
Please refer to that documentation and bear in mind that configuring
SSL for security is not trivial, and definitely not just a matter of
\fIenabling SSL\fP. See:
https://docs.python.org/2/library/ssl.html
Some options may not be available with older versions of Python.

Summary:
\fB\-\-ssl\-key\fP=\fIKEYFILE\fP
The key file to use.
.TP
\fB\-\-ssl\-cert\fP=\fICERTFILEORDIR\fP
Certificate file, required for server SSL support.
.TP
\fB\-\-ssl\-protocol\fP=\fIPROTOCOLVERSION\fP
Specifies which version of the SSL protocol to use.
.TP
\fB\-\-ssl\-ca\-certs\fP=\fICACERTSFILE\fP
The ca_certs file contains a set of concatenated 'certification
authority' certificates. If a directory is specified, it should contain
the certificates.
.TP
\fB\-\-ssl\-ca\-data\fP=\fICERTDATA\fP
Certificate data.
.TP
\fB\-\-ssl\-ciphers\fP=\fICIPHERS\fP
Sets the available ciphers, it should be a string in the OpenSSL cipher list format.
.TP
\fB\-\-ssl\-client\-verify\-mode\fP=\fInone\fP|\fIoptional\fP|\fIrequired\fP
Whether to try to verify the client's certificates and how to behave if verification fails.
.TP
\fB\-\-ssl\-server\-verify\-mode\fP=\fInone\fP|\fIoptional\fP|\fIrequired\fP
Whether to try to verify the server's certificates and how to behave if verification fails.
.TP
\fB\-\-ssl\-verify\-flags\fP=\fIFLAGS\fP
The flags for certificate verification operations.
.TP
\fB\-\-ssl\-check\-hostname\fP=\fIyes\fP|\fIno\fP
Whether to match the peer cert's hostname.
.TP
\fB\-\-ssl\-options\fP=\fIoptions\fP
Set of SSL options enabled on this context.
.TP

.\" --------------------------------------------------------------------
.SH ENVIRONMENT
.TP
\fBDISPLAY\fP
\fBxpra start \-\-start\-child\fP=\fI...\fP sets this variable in the
environment of the child to point to the xpra display.

\fBxpra attach\fP, on the other hand, uses this variable to determine
which display the remote applications should be shown on.

\fIXPRA_PASSWORD\fP may be used with \fBxpra attach\fP instead of the
\fBpassword-file\fP option.

.\" --------------------------------------------------------------------
.SH FILES
\fIxpra.conf\fP stores default values for most options.
There is a global configuration file in \fI/etc\fP or \fI/usr/local/etc\fP,
and each user may override those defaults by creating the file \fI.xpra/xpra.conf\fP.
You can also split the options into multiple files by placing them
in a \fIconf.d\fP directory with the \fI.conf\fP extension.
Depending on OS and version,
xpra uses the directory \fI~/.xpra\fP or \fI/run/<uid>/xpra\fP
to store a number of files.
(The examples below are given for the display \fI:7\fP.)
.TP
\fI~/.xpra/:7\fP
The unix domain socket that clients use to contact the xpra server,
if the system configuration uses this directory.
.TP
\fI~/.xpra/:7.log\fP
When run in daemon mode (the default), the xpra server directs all
output to this file.  This includes all debugging output, if debugging
is enabled.
.TP
\fI~/.xpra/run-xpra\fP
A shell script that, when run, starts up xpra with the correct python
interpreter, PYTHONPATH, PATH, location of the main xpra script, etc.
Automatically generated by \fBxpra initenv\fP, \fBxpra start\fP
and used by \fBxpra attach\fP (see also the discussion of
\fB\-\-remote\-xpra\fP).
.\" --------------------------------------------------------------------
.SH BUGS
Xpra does not fully handle all aspects of the X protocol; for
instance, fancy input features like pressure-sensitivity on tablets,
some window manager hints, and probably other more obscure parts of the
X protocol.  It does, however, degrade gracefully, and patches for each
feature would be gratefully accepted.

The xpra server allocates an over-large framebuffer when using Xvfb;
this wastes memory.
If the Xvfb does not support RandR this can also cause applications
to misbehave (e.g. by letting menus go off-screen). This is not a
problem when using Xdummy, see the \fB\-\-xvfb\fP= switch for details.
Conversely, if the framebuffer is ever insufficiently large,
clients will misbehave in other ways (e.g., input events will be
misdirected).
.\" --------------------------------------------------------------------
.SH REPORTING BUGS
Send any questions or bugs reports to
https://github.com/Xpra-org/xpra/issues
.\" --------------------------------------------------------------------
.SH SEE ALSO
\fBscreen\fP(1),
